This page last changed on Oct 13, 2009 by michael.
Atom Publishing Protocol (AtomPub) Overview
The Atom Publishing Protocol (AtomPub) is an application-level protocol for publishing and editing Web resources. The protocol is based on HTTP transport of Atom-formatted representations. The Atom format is documented in the Atom Syndication Format.
Data Model
Apache Wink provides an Atom Publishing Protocol data model for producing Service Documents (application/atomsvc+xml) and Categories Documents (application/atomcat+xml). All of the model classes are located under the org.apache.wink.common.model.app package.
| Important Note The APP data model can also be used to produce Service and Categories documents in HTML (text/html) and JSON (application/json) formats. For more details regarding HTML see section HTML (TBD). For JSON format see section (TBD) |
APP Service Document Support
The following table shows the APP service document data models and the representations in which it can be serialized and de-serialized.
|
Supported |
Media Types |
Data Model |
Provider Registration |
Read |
Yes |
application/atomsvc+xml |
org.apache.wink.common
.model.app.AppService |
Not required. Registered by default |
Write |
Yes |
application/atomsvc+xml |
org.apache.wink.common
.model.app.AppService |
Not required. Registered by default |
APP Categories Document Support
The following table shows the APP Catagories document data models and the representations in which it can be serialized and de-serialized.
|
Supported |
Media Types |
Data Model |
Provider Registration |
Read |
Yes |
application/atomcat+xml |
org.apache.wink.common
.model.app.AppCategories |
Not required. Registered by default |
Write |
Yes |
application/atomcat+xml |
org.apache.wink.common
.model.app.AppCategories |
Not required. Registered by default |
Producing an APP Service Document Example
The following code example demonstrates the creation of an APP Service Document.
@GET
@Produces(MediaTypeUtils.ATOM_SERVICE_DOCUMENT)
public AppService getServiceDocument() {
AppService serviceDocument = new AppService();
List<AppWorkspace> workspaces = serviceDocument.getWorkspace();
AppWorkspace workspace1 = new AppWorkspace();
workspace1.setTitle(new AtomText("Workspace1"));
List<AppCollection> collections = workspace1.getCollection();
AppCollection collection = new AppCollection();
collection.setTitle(new AtomText("Collection1"));
collections.add(collection);
workspaces.add(workspace1);
...
return serviceDocument;
}
Explanation
AppService class is JAXB annotated POJO. An instance of an AppService class is created, populated and returned by the resource. A generic JAXB provider is used to serializes this class into an XML representation.
|